home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d11
/
frasrc14.arc
/
FRACTSRC.DOC
< prev
next >
Wrap
Text File
|
1990-08-02
|
6KB
|
131 lines
FRACTSRC.ZIP includes the complete source code for FRACTINT (.C and .ASM).
Recognizing that not everyone HAS (or even wants) an assembler, much less
either MASM 5.1 or Turbo-ASM, which are the only two assemblers that the
authors are aware of that can handle these particular files, it also contains
a complete set of .OBJ files from the assembler code,
Note that the Keepers of the Official Sets of Source Code (Bert Tyler and
Timothy Wegner) both use the Microsoft 5.1 or 6.0 C compiler and Microsoft
5.1 assembler, so that is the one combination of compiler/assemblers that is
pretty much guaranteed to handle FRACTINT in all of its various mutations.
Given that several of FRACTINT's co-authors now prefer (or only have!)
alternate combinations, we have re-arranged the code to (usually) handle
several popular alternatives. In particular:
Microsoft C 5.1 or 6.0 (and MASM 5.1):
======================================
Just run MAKEFRAC.BAT, which invokes the Microsoft MAKE utility using
the files FRACTINT.MAK and FRACTINT.LNK. Note that the assembler .OBJ files
have been included in the .ZIP file, so that you don't really need MASM
unless you are going to modify one or more of them. If you ARE going to
modify one of the assembler files, note that the distributed versions rely
on some nifty features added to version 5.1 (like the '.model medium,c'
option) and will not assemble under older versions of MASM without a LOT
of work.
MSC 6.0 users: Due to limitations with (and a bug in) MSC 6.0, the following
files *must* be compiled with the '/qc' option: FRACTALS.C (without the
'/qc' option, MSC chokes with a heap overflow on pass 2) and PARSER.C
(without the '/qc' option, MSC 6.0 creates a bad OBJ file!!)
Quick-C:
========
As of version 9.0, FRACTINT is just too big for the interactive Quick-C
(QC) environment. You have to use the command-line variant of Quick-C
(QCL) these days (which even works, now - we chopped up the large routine
in FRACTINT.C that was choking Quick-C). To convert the MAKEfiles to use
Quick-C rather than "regular" C, edit FRACTINT.MAK, comment out the fifth
line (the one that goes " cl /AM ...") and un-comment out the second line
(the one that goes " qcl /AM ...").
Turbo-C, Turbo-C++ and TASM
===========================
Sorry, Turbo-C fans, but as of version 14.0, FRACTINT requires TC++.
The lack of initialized FAR arrays and structures just did the older Turbo-C
product in. The *good* news is that several of the FRACTINT authors now
use Turbo-C++, so the odds of released FRACTINT distributions that do
not sompile with Turbo products are lower than they used to be.
We have replaced the old TC.MAK and TC.LNK files with a FRACTINT.PRJ
replacement that Mark Peterson uses to compile and link FRACTINT using
the Turbo products on his machine.
Where the Goodies are
=====================
It has come to our attention that people who have no interest in fractals
at all have been wandering through the FRACTINT source code just to get at
some of the neat tricks buried therein. Here are a few hints as to where
to look:
DEBUGFLA.DOC - (semi-)documented list of the programmer's debugging
flags that have been buried in Fractint for years,
but never documented.
FRACTINT.C - The main routine. Nothing special here.
FRACTINT.H - General Include file. Nothing special here, either.
FRACTYPE.H - Fractal type-specific Include file.
PROMPTS.C - The full-screen prompting code (using support routines
in VIDEO.ASM)
FRACTALS.C, - Most of the fractal-specific code. If you want to know
CALCFRAC.C how a fractal is calculated, look in here. Specific
speed-em-up support for special fractal types is in...
CALCMAND.ASM - Mandelbrot/Julia set calculations.
NEWTON.ASM - Newton calculations
JB.C - "Julibrot" fractal type calculations
TESTPT.C - "Roll-your-own" fractal routine
MPMATH_C.C, - Mark Peterson's "fast-math" support routines.
MPMATH_A.ASM, (this stuff puts some of the routines supplied by your
FPU387.ASM, favorite "C" compiler to shame!)
FPU087.ASM ...
PARSER.C - The "type=formula" formula parser routines
VIDEO.ASM - Assembler code containing all of the video routines
(setting up the video, reading/writing pixels, zoom-box
code, color-cycling, graphics-to-text "help" switch,
... with help from the routines below for special adapters:
TARGA.C, - TARGA Video Routines
TARGA.H, ...
LOADMAP.C, ...
TGASUBS.C ...
FR8514A.ASM - 8514/A Routines
HGCFRA.ASM - Hercules Video Routines
DISKVID.C - "DISK'RAM" video routines
YOURVID.C - "Roll-your-own" video routines
GENERAL.ASM - General assembler code having nothing to do with fractals.
Lots of the tricky stuff is in here, and many of the "C"
routines that perform tricky functions rely on support
code buried in here. In particular, this routine has the:
CPU, FPU Detectors
Keyboard routines
Mouse routines
Expanded memory routines
32-bit scaled integer multiply and divide routines
ENCODER.C - GIF Encoder routine.
GIFVIEW.C, - GIF Decoder routines.
DECODER.C,
TGAVIEW.C, (including a TARGA-format encoder/decoder currently used
F16.C only for the "Continuous Potential" algorithm)
LINE3D.C, - 3D manipulation routines
3D.C
ROTATE.C - routines which "spin" the VGA video-DAC.
CONFIG.C - general Fractal File configuration routines.
HELP.C, - HELP support
FARMSG.ASM - HELP and various other messages (placed in this FAR
segment to free up some precious NEAR data space)
PRINTER.C - The Printer Routines